Artificial Intelligence (AI) is the field of science and engineering that attempts to produce machine systems that have intelligent behavior Expert systems is a branch of AI that attempts to produce systems that can reason in the same manner as a human expert. Additionally. expert systems are generally based upon developments in systems engineering since knowledge engineering tools (the systems that are used to build expert systems) are generally automatic programming systems that perform some portion of the design structural procedural or operational activities of programmers. An expert system is a rule-based program incorporating a knowledge base and a knowledge engineering tool. The purpose of an expert system is to duplicate the function of an expert in a particular area of expertise by processing the rules in the knowledge base and developing conclusions.
Most expert systems have been built using knowledge engineering tools. These tools include programming languages such as C. LISP, ADA Prolog and Smalltalk and expert systems shells such as OPS5 S1 Nex pert, and KEE. Knowledge engineering tools generally provide more functions than programming languages; they may include rule editors, inference engines and explanation systems. Rule editors assist developers in the building of knowledge bases and situational data to develop conclusions. Explanation systems explain the conclusions of the inferencing session to the developer or user of the knowledge engineering tool.
Many problems exist in knowledge engineering tools today. The problems encountered with the implementation of expert systems include an inability to make them highly parallel, adaptable distributable or extendable. In addition, some tools are incapable of being embedded within other computer applications.
Most expert systems are not self-referential meaning they cannot self learn. This is a drawback because the knowledge base is not updated from experiences of the expert system. For example, if a set of data is input which is similar to a set of data input in the past, the expert system will draw the same conclusion. However, if an error was made in the first instance and the system is non selfreferential then it can make an erroneous recommendation in the second instance.
Knowledge engineering tools generally have trouble dealing with changes in the outside world. Since things change in the real world it is important to take these changes into consideration as the expert system performs. This is referred to as Non-monotonic reasoning. Most expert systems freeze a moment in time and analyze the problem at that moment. These systems do not take into account changes occurring due to the analytical steps they have taken.
Most knowledge engineering tools have trouble reasoning about events that occur at different times and inferring default conclusions based on the lack of information. This is referred to as Temporal Reasoning. Since most activities in the real world do involve events that operate over time and since most human reasoning operates upon incomplete information, systems that do not have effective Temporal Reasoning methods cannot easily handle many common problems.
Inference engines generally use forward chaining, backward chaining or some combination of both to select rules for processing. Some problems are more easily solved by one method or another and most inference engines contain methods that allow the developer to control the method the system will use to address portions of a problem. Few systems are able to automatically select the appropriate method without explicit control of the developer. Requiring the developer to explicitly control the method generally leads to less generality of the knowledge base and severely limits the ability of the system to optimize its operations and perform them in parallel.
Most knowledge engineering tools operate on one instance of a frame of data or require procedural rules to perform operations on more than one instance. Since many problems deal with sets of data rather than single instances, these systems require that the conceptual thinking of the expert or that procedural rules implement serial processes upon the sets of data. Systems engineering research has developed well-defined operations on sets that have a firm mathematical background. This is called relational algebra and the relational data model. The inventors previously developed an extension of the relational data model that encompasses temporal reasoning: it is referred to as the time relational data model. However, the inventors are unaware of any prior knowledge engineering tools based upon the relational algebra, the relational data model, or the time relational data model.
Other problems exhibited by knowledge engineering tools include uncontrollable default logic, asynchronous effects that make results dependent on the order in which operations are performed, and the coding of procedural statements.
Where procedural statements are used, parallel operation is hindered and flexibility in the growth of the knowledge base is limited.